package com.biscuit.page.basicservice.utils;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.biscuit.page.basicservice.model.entities.mysql.SysAiChatDialogue;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessage;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessageRole;
import jodd.util.CollectionUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * @author biscuit
 * @create 2024年07月31日 20:47
 */
public class VolcanoUtil {

    public static List<ChatMessage> buildChatMessageByAiChatDialogue(List<SysAiChatDialogue> aiChatDialoguesList, String question) {
        // 对话消息集合
        List<ChatMessage> messageList = new ArrayList<>();

        // 设置对话主题
        ChatMessage systemMessage = ChatMessage.builder()
                .role(ChatMessageRole.SYSTEM)
                .content("你是饼干AI人工智能助手，是由程序员饼干开发的 AI 人工智能助手")
                .build();
        messageList.add(systemMessage);

        // 将五分钟内的对话信息与答案，作为历史上下文提升回答正确性
        if (CollectionUtils.isNotEmpty(aiChatDialoguesList)) {
            aiChatDialoguesList.forEach(x -> {
                // ChatMessage chatMessageQuestion = ChatMessage.builder()
                //         .role(ChatMessageRole.USER)
                //         .content(x.getQuestion())
                //         .build();
                ChatMessage chatMessageResult = ChatMessage.builder()
                        .role(ChatMessageRole.ASSISTANT)
                        .content(x.getResult())
                        .build();

                // messages.add(chatMessageQuestion);
                messageList.add(chatMessageResult);
            });
        }

        // 本次的问题
        messageList.add(
                ChatMessage.builder().role(ChatMessageRole.USER).content(question).build()
        );

        // 返回消息集合
        return messageList;
    }

}
